/**
 ************************************************************************************************************
 * Depth only pass (w/ normals if necessary)
 ************************************************************************************************************
 * @file RBRenderPassDepth.h
 ************************************************************************************************************/

#ifndef __RBRENDERPASSDEPTH__H__
#define __RBRENDERPASSDEPTH__H__

#ifdef  HEADER_ONCE
#pragma HEADER_ONCE
#endif

#ifdef  HEADER_MSG
#pragma HEADER_MSG(RBRenderPassDepth.h)
#endif

/************************************************************************************************************
 * Includes
 ************************************************************************************************************/
#include "RBRenderPass.h"

/************************************************************************************************************
 * Forward declarations
 ************************************************************************************************************/
#if 0

/************************************************************************************************************
 * Class
 ************************************************************************************************************/

class RBRenderPassDepth : public RBRenderPass
{
    RBDeclareRTTI(RBRenderPassDepth, RBRenderPass);
public:
				    RBRenderPassDepth		(const RBString& strDepthName, RBCamera* pMainCamera, 
                                             uint32 uiWidth, uint32 uiHeight, RBPixelFormat eColorFormat, RBPixelFormat eDSFormat,
                                             bool bWithNormals = true);
	virtual	       ~RBRenderPassDepth		();
	
    virtual void    PreProcessGeometries    (const RBVisibilityComponentArray& entities, RBGeometryArray& geometries);
    virtual void    PostProcessGeometries   (const RBGeometryArray& geometries, RBVisibilityComponentArray& entities);

    virtual void    OnReset             (bool bBeforeReset);

protected:

private:

    RBEffect*              m_pDepthEffect;
    std::vector<RBEffect*> m_aEffects;

};

/************************************************************************************************************/
#endif

#endif // __RBRENDERPASSDEPTH__H__
